/* #include "complier.hpp"

//假设现在已经有一个文件在temp目录下了
int main(){
    std::string name = "code";
    Compiler::ComPile(name);
    return 0;
} */



/* #include "compile_run.hpp"
//测试compile_run的功能
int main(){
    std::string in_json, out_json;    
    Json::Value root;
    //用c++11的raw string 意思就是，()内部的是什么就解析什么
    root["code"] = R"(
    #include<iostream>
    int main(){
        std::cout << "Hello cout" << std::endl;
        aaaaadas
        std::cerr << "Hello cerr" << std::endl;
        return 0;
    }
    )";
    root["input"] = "";
    root["cpu_limit"] = 1;          //cpu时间限制在1s
    root["mem_limit"] = 10240 * 3;  //30MB -> 足够进行加载动态库之类的

    Json::StyledWriter sw;
    in_json = sw.write(root);
    CompileAndRun::Start(in_json, &out_json);
    std::cout << out_json << std::endl;    
    return 0;
} */



//打包成一个网络服务，并且使用postman进行测试
#include "compile_run.hpp"
#include "../Common/httplib.h"
using namespace httplib;
//测试compile_run的功能




int main(int argc, char* argv[]){
    if(argc != 2) return -1;

    Server svr;

    svr.Post("/compile_and_run", [](const Request& req, Response& resp){
        std::string in_json = req.body;  //正文就是我们传入的格式
        std::string out_json;
        CompileAndRun::Start(in_json, &out_json);
        resp.set_content(out_json, "application/json;charset=utf-8");
    });


    svr.listen("0.0.0.0", std::stoi(argv[1]));

    
 
    return 0;
}